Some manufacturers of video games, especially first-person shooter (FPS) video games that emulate the game world from the perspective of the player-character, strive to provide realistic interactive environments to enhance the gaming experience. For example, one such realism effect may include a depiction of shadows “caused” by one or more light sources. Where a single light source may cast shadows from many objects in a scene, the combined effect of many light sources acting upon the same object or objects is expectedly even more difficult to reproduce. Further complications include the use of different types of light, such as ceiling lights, flashlights, fire, and/or daylight, which can cause effectively different shadow patterns. And, the use of lights which change color, intensity, and geography (e.g., a sun setting) can cause effectively different shadow patterns. Further, even if a light source provided does not change, a moving object requires a change in the shadow pattern.
Existing techniques used to maintain shadows use directional encoding to approximate multiple incident lights, as shown in FIG. 1A. Where, for example, incident lights 101a and 102a strike an object 103 to create a shadow, existing technologies approximate the combined effect of incident lights 101a and 102a by using directional encoding to compute and apply the effect of hypothetical light source 104. This approximation, however, results in inferior mapping quality, especially on specular objects such as mirrors, water or metal, since shadows may block all or part of a specular. Moreover, this approximation limits the range and precision of shadows from high dynamic range (HDR) light sources, especially when lights may change intensity and color during game play.
Thus, there is a need for systems and methods that accurately reproduce dynamic shadows from many incident light sources in a real time environment.